package tour.board.dao;

import java.sql.SQLException;
import java.util.ArrayList;

import tour.board.to.CmBoard;
import tour.board.to.RecommendTO;
import tour.board.to.ReCmBoard;




public interface CmBoardDAO {

	//board 테이블에 내용을 하나 insert
		public abstract Object insertContentForNewCount(CmBoard cmBoard)
				throws SQLException;

		//board 테이블에 답변글 하나 insert 처리
		public abstract Object insertContentForReply(CmBoard cmBoard)
				throws SQLException;

		/**
		 * 매개변수로 받은 페이지에 보여줄 글 목록 조회
		 * @param page 글을 조회할 페이지
		 * @return ArrayList<Board> 조회한 글 목록
		 * @throws SQLException
		 */
		public abstract ArrayList<CmBoard> selectBoardListByPage(int page)
				throws SQLException;

		//페이징 없이 전체 조회
		public abstract ArrayList<CmBoard> selectBoardAllList() throws SQLException;

		//총 게시물 수를 return 하는 메소드
		public abstract int selectTotalContent() throws SQLException;

		//조회수를 1개 update 처리하는 메소드 (글 조회시 호출)
		public abstract int updateViewCount(int no) throws SQLException;

		//글번호로 게시물 조회하는 메소드
		public abstract CmBoard selectContentByNO(int no) throws SQLException;

		//게시물 정보를 수정하는 메소드
		public abstract int updateContent(CmBoard cmBoard) throws SQLException;

		//글번호로 게시물을 삭제하는 메소드
		public abstract int deleteContentByNO(int no) throws SQLException;

		//답변 처리시 restep값 update하는 메소드
		public abstract int updateRestep(int refamily, int restep)
				throws SQLException;

		
		//추천 했는지 check
		public abstract String recommend(RecommendTO rto) throws SQLException;
		
		//추천 update
		public abstract void updateCommendCount(int no) throws SQLException;
		
		public abstract void insertRecommendInfo(RecommendTO rto) throws SQLException;

		
		public abstract ArrayList replyList();

		public abstract void addReply(ReCmBoard reCmBoard);

		public abstract ArrayList getReplyByNo(int no);

		public abstract ArrayList mainList();

		public abstract ArrayList findTitle(String find);

		public abstract ArrayList findWriter(String find);

}
